//
//  JHTableViewController.swift
//  JHSinaWeibo
//
//  Created by apple on 16/5/19.
//  Copyright © 2016年 apple. All rights reserved.
//

import UIKit
import SVProgressHUD

private let HomeCellId = "HomeCellId"

class JHTableViewController: JHBaseTableViewController {

    //定义模型数组
   // lazy var statuses:[JHStatus] = [JHStatus]()
    //添加视图模型属性
    lazy var statusListViewModel:JHStatusListViewModel = JHStatusListViewModel()
    override func viewDidLoad() {
        super.viewDidLoad()
//        if !self.view.isKindOfClass(UITableViewController) {
            //用户未登录 设置访客视图的信息
        if !userLogin{
            visitorLoginView.updateUI("关注一些人，回到这里看看有什么惊喜", imageName: "visitordiscover_feed_image_smallicon",isHome: true)
            
            return
        }

        setNav()
        loadData()
        prepareForTableView()
    }
    private func prepareForTableView(){
    // 准备tableView
        //注册cell 
    tableView.registerClass(JHStatusCell.self, forCellReuseIdentifier: HomeCellId)
        //设置cell的高度
        //tableView.rowHeight = 300
        //提高tableView加载效率 预估行高 ＊ 数据源 ＝ contentSize -> tableView
        tableView.estimatedRowHeight = 300
    }
    //设置导航条
    private func setNav(){
        let pushItem = UIBarButtonItem(imageName: "navigationbar_pop",target: self,action: #selector(JHTableViewController.push))
        //设置导航条的右边的barbuttonitem
        navigationItem.rightBarButtonItem = pushItem
    }
    
   @objc private func push (){
    let detail = JHDetailViewController()
    detail.hidesBottomBarWhenPushed = true
    navigationController?.pushViewController(detail, animated: true)
    
     }
    
}
extension JHTableViewController{
//加载数据
private func loadData(){
 statusListViewModel.loadData { (isSuccess) in
    if !isSuccess{
    //提示用户请求失败
    SVProgressHUD.showErrorWithStatus(AppErrorTip)
        return
    }
    //请求数据成功
    //刷新数据
    self.tableView.reloadData()
      }
    }
}
    //实现数据源方法
extension JHTableViewController{
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return statusListViewModel.statusViewModelArray.count
    }
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        //以后获取缓存cell都是使用这种方式
        //需要注册cell的类型 和 可重用标识
        let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellId, forIndexPath: indexPath)as!JHStatusCell
       // cell.textLabel?.text = statuses[indexPath.row].user?.name
      cell.statusViewModel = statusListViewModel.statusViewModelArray[indexPath.row]
        return cell
    }

}

